Discovering signature of electronic social networks

ABSTRACT

Systems and computer program products may rank one user&#39;s connections in an electronic social network. The computer system may include a processor and a memory. The computer system may additionally include a program comprising a plurality of instructions stored in memory that are executed by the processor to identify one user&#39;s connections with other users in an electronic social network, and analyze a plurality of data sources for electronic communications between the one user and the other users. The program may additionally include a plurality of instructions stored in memory that are executed by the processor to calculate for each of the other users the probability that the one user will communicate with that other user based on the analyzed plurality of data sources, and rank the one user&#39;s connections with the other users based on the calculated probabilities.

BACKGROUND

The present inventions relate to social network analysis systems, andmore particularly to systems that rank user's connections in electronicsocial networks and/or generate signature graphs of those networks basedon the ranked connections.

An electronic social network is a virtual community of interconnectedusers. Users may establish connections with other users and shareinformation by, for example, sending messages and/or publishingannouncements via shared connections. A service provider hosting asocial network may track, for example, data about users, messagestransmitted between users, and/or link structure to gain insight aboutthe network system, cultural trends, marketing data, and/or interest ingoods and services. Networks may have millions of users and connectionsbetween users and may include large amounts of data about link structureand user activity.

SUMMARY

According to one embodiment, a method may include identifying, by anelectronic apparatus, one user's connections with other users in anelectronic social network. The method may additionally includeanalyzing, by the electronic apparatus, a plurality of data sources forelectronic communications between the one user and the other users. Themethod may further include calculating, by the electronic apparatus, foreach of the other users the probability that the one user willcommunicate with that other user based on the analyzed plurality of datasources. The method may additionally include ranking, by the electronicapparatus, the one user's connections with the other users based on thecalculated probabilities.

According to one embodiment, a computer system may include a processorand a memory. The computer system may additionally include a programcomprising a plurality of instructions stored in the memory that areexecuted by the processor to identify one user's connections with otherusers in an electronic social network. The plurality of instructionsadditionally comprises instructions that are executed by the processorto analyze a plurality of data sources for electronic communicationsbetween the one user and the other users. The plurality of instructionsfurther comprises instructions that are executed by the processor tocalculate for each of the other users the probability that the one userwill communicate with that other user based on the analyzed plurality ofdata sources. The plurality of instructions additionally comprisesinstructions that are executed by the processor to rank the one user'sconnections with the other users based on the calculated probabilities.

According to one embodiment, a computer program product for ranking oneuser's connections in an electronic social network may include at leastone computer readable storage medium having computer readable programinstructions embodied therewith. The computer readable programinstructions, when read by a processor, may be configured to identifyone user's connections with other users in an electronic social network.The computer readable program instructions, when read by a processor,may additionally be configured to analyze a plurality of data sourcesfor electronic communications between the one user and the other users.The computer readable program instructions, when read by a processor,may further be configured to calculate for each of the other users theprobability that the one user will communicate with that other userbased on the analyzed plurality of data sources. The computer readableprogram instructions, when read by a processor, may additionally beconfigured to rank the one user's connections with the other users basedon the calculated probabilities.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a pictorial representation of an example of a computer systemin which illustrative embodiments may be implemented.

FIG. 2 is a block diagram of an example of a computer in whichillustrative embodiments may be implemented.

FIG. 3 is a block diagram of an example of a social network (SN) systemin which illustrative embodiments may be implemented.

FIG. 4 is a block diagram of an example of a SN represented as a networkgraph that includes a set of users and user-to-user connections inaccordance with the principles of the present inventions.

FIG. 5 is a block diagram of an example a SN represented as a networkgraph showing representative communications traffic between users inaccordance with the principles of the present inventions.

FIG. 6 is a block diagram of an example of a portion of a SN representedas a neighbor graph that includes one user and other users connected tothat user in accordance with the principles of the present inventions.

FIG. 7 is a block diagram of an example of a tabular graph encoded inbinary values in accordance with the principles of the presentinventions.

FIG. 8 is a block diagram of another example of a tabular graph encodedin a set or range of values in accordance with the principles of thepresent inventions.

FIG. 9 is a block diagram of an example of a computational model of a SNthat includes a signature graph in accordance with the principles of thepresent inventions.

FIG. 10 is a block diagram of an example of a portion of a SN analyticssystem inducing probability distributions for a given user and connectedneighbors of that user in accordance with the principles of the presentinventions.

FIG. 11 is a block diagram of an example of data sources and associatedinduced probability distributions for a given user and connectedneighbors of that user in accordance with the principles of the presentinventions.

FIG. 12 is a block diagram of an example of data sources, probabilitydistributions for a given user and connected neighbors induced from thedata sources, and a hypothetical probability distribution derived frominduced data sources in accordance with the principles of the presentinventions.

FIG. 13 is a block diagram showing an example of clustered data sourcesin accordance with the principles of the present inventions.

FIG. 14 is a block diagram of an example of a rank aggregation processusing a Kemeny Young ranking rule in accordance with the principles ofthe present inventions.

FIG. 15 is a block diagram of an example of a rank aggregation processusing Borda Count ranking rule in accordance with the principles of thepresent inventions.

FIG. 16 is a block diagram of an example a SN represented as a networkgraph that includes a rank score or rank value associated with eachconnection in accordance with the principles of the present inventions.

FIG. 17 is a block diagram of an example of signature graph inaccordance with the principles of the present inventions.

FIG. 18 depicts an example of a method of discovering or generating asignature graph in accordance with the principles of the presentinventions.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinventions may be embodied as a system, method, or computer programproduct. Accordingly, aspects of the present inventions may take theform of an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module,” or “system.”Furthermore, aspects of the present inventions may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent inventions may be written in any combination of one or moreprogramming languages, including an object-oriented programming languagesuch as Java, Smalltalk, C++, or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present inventions are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinventions. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions thatimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions that execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

With reference now to the figures and in particular to FIGS. 1 and 2,exemplary diagrams of data processing environments are provided in whichillustrative embodiments may be implemented. It should be appreciatedthat FIGS. 1 and 2 are only exemplary and are not intended to assert orimply any limitation with regard to the environments in which differentembodiments may be implemented. Many modifications to the depictedenvironments may be made.

The flowcharts and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present inventions. In this regard, each block in theflowcharts or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustrations,and combinations of blocks in the block diagrams and/or flowchartillustrations, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

FIG. 1 depicts a pictorial representation of a computer system,indicated generally at 10, and including a network of computers in whichillustrative embodiments may be implemented. Computer system 10 maycontain a network 12, which is the medium used to provide communicationslinks between various devices and computers connected together withincomputer system 10. Network 12 may include connections, such as wire,wireless communication links, or fiber optic cables, or combinations ofsuch connections.

In the depicted example, a server 14 and a server 16 may connect tonetwork 12 along with a storage unit 18. In addition, one or more clientcomputers may connect to network 12, such as a first client computer 20,a second client computer 22, and a third client computer 24. Clientcomputers 20, 22, and 24 may be, for example, personal computers workstations, or network computers. In the depicted example, server 14 mayprovide data, such as boot files, operating system images, and/orsoftware applications to client computers 20, 22, and 24. Clientcomputers 20, 22, and 24 are clients to server 14 in this example.Computer system 10 may include additional servers, clients, and otherdevices not shown, or may include fewer devices than those shown.

In the depicted example, network 12 may be or may include the Internet.Computer system 10 also may be implemented with a number of differenttypes of networks, such as for example, an intranet, a local areanetwork (LAN), or a wide area network (WAN). FIG. 1 is intended as anexample, and not as an architectural limitation for the differentillustrative embodiments.

With reference now to FIG. 2, a block diagram of an exemplary dataprocessing system 30 is shown in which illustrative embodiments may beimplemented. Data processing system 30 is an example of a computer, suchas server 14 or client computer 20 in FIG. 1, in which computer-usableprogram code or instructions implementing the processes may be locatedfor the illustrative embodiments. In this illustrative example, dataprocessing system 30 may include communications fabric 32, whichprovides communications between a processor unit 34, a memory 36, apersistent storage 38, a communications unit 40, an input/output (I/O)unit 42, and a display 44. In other examples, a data processing systemmay include more or fewer devices.

Processor unit 34, also referred to simply as a processor, may serve toexecute instructions for software that may be loaded into memory 36 frompersistent storage 38. Processor unit 34 may be a set of one or moreprocessors or may be a multi-processor core, depending on the particularimplementation. Further, processor unit 34 may be implemented using oneor more heterogeneous processor systems in which a main processor ispresent with secondary processors on a single chip. As anotherillustrative example, processor unit 34 may be a symmetricmulti-processor system containing multiple processors of the same type.

Memory 36 and persistent storage 38 are examples of storage devices. Astorage device is any piece of hardware that is capable of storinginformation on either a temporary basis and/or a permanent basis. Memory36, in these examples, may be, for example, a random access memory orany other suitable volatile or non-volatile storage device. Persistentstorage 38 may take various forms depending on the particularimplementation. For example, persistent storage 38 may contain one ormore components or devices. For example, persistent storage 38 may be ahard drive, a flash memory, a rewritable optical disk, a rewritablemagnetic tape, or some combination of the above. The media used bypersistent storage 38 also may be removable. For example, a removablehard drive may be used for persistent storage 38.

Communications unit 40, in these examples, provides for communicationswith other data processing systems or devices. For example,communications unit 40 may be a network interface card. Communicationsunit 40 may provide communications using either or both physical andwireless communications links.

Input/output unit 42 allows for input and output of data with otherdevices that may be connected to data processing system 30. For example,input/output unit 42 may provide a connection for user input through akeyboard and mouse. Further, input/output unit 42 may send output to aprinter. Display 44 displays information to a user.

Instructions for the operating system and applications or programs arelocated on persistent storage 38. These instructions may be loaded intomemory 36 for execution by processor unit 34. The processes of thedifferent embodiments may be performed by processor unit 34 usingcomputer implemented instructions, which may be located in a memory,such as memory 36. These instructions are referred to as program code,computer-usable program code, or computer-readable program code that maybe read and executed by a processor in processor unit 34. The programcode in the different embodiments may be embodied on different physicalor tangible computer-readable media, such as memory 36 or persistentstorage 38.

Program code 50 may be located in a functional form on acomputer-readable media 52 that is resident on a local or remote storagedevice or is selectively removable and may be loaded onto or transferredto data processing system 30 for execution by processor unit 34. Programcode 50 and computer-readable media 52 form computer program product 54in these examples. In one example, computer-readable media 52 may be ina tangible form, such as, for example, an optical or magnetic disc thatis inserted or placed into a drive or other device that is part ofpersistent storage 38 for transfer onto a storage device, such as a harddrive that is part of persistent storage 38. In a tangible form,computer-readable media 52 also may take the form of a persistentstorage, such as a hard drive, a thumb drive, or a flash memory that isconnected to data processing system 30. The tangible form ofcomputer-readable media 52 is also referred to as computer-recordablestorage media. In some instances, computer-recordable media 52 may notbe removable.

Alternatively, program code 50 may be transferred to data processingsystem 30 from computer-readable media 52 through a communications linkto communications unit 40 and/or through a connection to input/outputunit 42. The communications link and/or the connection may be physicalor wireless, or a combination of physical and wireless in theillustrative examples. The computer-readable media also may take theform of non-tangible media, such as communications links or wirelesstransmissions containing the program code.

The different components illustrated for data processing system 30 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 30. Other components shown in FIG. 2 can be variedfrom the illustrative examples shown. As one example, a storage devicein data processing system 30 is any hardware apparatus that may storedata. Memory 36, persistent storage 38, and computer-readable media 52are examples of storage devices in tangible forms.

In another example, a bus system may be used to implement communicationsfabric 32 and may be comprised of one or more buses, such as a systembus or an input/output bus. Of course, the bus system may be implementedusing any suitable type of architecture that provides for a transfer ofdata between different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 36 or a cache such asfound in an interface and memory controller hub that may be present incommunications fabric 32.

As noted above, systems, methods, and computer program products aredisclosed herein for ranking a user's connections in electronic socialnetworks and generating signature graphs of those networks based on theranked connections. “Social network” may be abbreviated to “SN.”

Referring now also to FIG. 3, a representative architecture for anelectronic SN system, indicated generally at 60, is shown. A SN may be acommunity of persons and organizations who share relationships andcommunicate with each other. For example, an electronic SN may be anonline community that communicates via a computer network. An electronicSN may be coordinated by, for example, a SN website that providesfeatures that allow users to join the SN, create connections with otherusers, communicate electronically with other users via sharedconnections, and view and respond to content provided by the website.

System 60 may be an example of a computer or communications network 12adapted to serve as a community of interconnected users. System 60 mayinclude one or more SN servers 62, one or more client devices 64, andone or more communications networks 66. System 60 may include other,alternative, or additional elements and may omit one or more elements.

SN server 62 may be a computer system that provides computation and/orcommunication resources for SN system 60. For example, server 62 mayprovide resources for managing user accounts, transmitting electroniccommunications 68, tracking and analyzing user activity, and so on.Server 62 may host a SN website 70, which may offer a user interface 72to users 82 and other visitors, for example, to provide features used tocreate, manage, and delete accounts; offer, accept, and refuseconnections to other users 82; send and receive communications 68, andso on. Website 70 may include features that display communications 68from a SN service provider and/or its partners, affiliates, andadvertisers and that allow users 82 to interact with and/or respond tothe displayed communications 68. For example, website 70 may carrypolls, advertising, and other features that may provide responsemechanisms.

Server 62 may provide back-end functionality for system 60, such as,maintaining a database or other registry 74 of data about users 82,connections 84, system 60, and SN 80. Registry 74 may include, forexample, data that describes each user account (such as a login ID,password, real name, contact information, e-mail address, billing data,unique identifier, and so on), data that describes network structure(such as records of connections between each user 82 and other users82), and/or data that describes activity within SN 80 (such ascommunications 68 sent to or received by each user 82). Server 62 mayprovide HTML, database, script-execution, and other services appropriatefor hosting a website 70 that implements SN 80. System 60 may employmultiple servers 62, for example, to divide distinct tasks amongdistinct servers 62. Server 62 may be an example of server 14, 16.

A client device 64 may be any hardware/software device used by one ormore users 82 to access, display, and/or interact with system 60.Examples of devices 64 may include personal computers, laptop computers,personal digital assistants, tablet devices, touch-screen devices,touch-pad devices, smart phones, cellular telephones, dedicated SNappliances, SN features embedded in products, and so on. Device 64 maycommunicate with server 62, for example, to exchange data and/orcommunications 68 with other users 82 of system 60 via server 62. Device64 may run software, such as a web browser 76, to communicate withserver 62. Device 64 may be an example of client 20, 22, 24.

User interface 72 may be any hardware/software system that providesfeatures that allow a user 82 to participate in system 60. Portions ofinterface 72 may run on server 62, and portions may run on device 64.For example, interface 72 may take the form of a web page of website 70hosted on server 62 and transmitted to web browser 76 on device 64. HTMLforms or other mechanisms of a SN web page may facilitate data exchangebetween user 82 of device 64 and website 70 of server 62.

Communications network 66 may include any data transmission pathwaybetween device 64 and server 62. Network 66 may be wired and/or wirelessand may include Internet 77, which may include cloud-based featuresand/or services. For example, network 66 may include a local areanetwork that connects client device 64 to Internet 77 and thereby toserver 62. Network 66 may be an example of network 12.

System 60 may include one or more social network analysis (SNA) systems78. System 78 may an example of server 14, 16 or client 20, 22, 24adapted to perform feature extraction, mathematical modeling, datamining, and/or other computational, statistical, or analytical tasksbased on data obtained or derived from system 60. System 78 may host aSN analytics system 79, which may be a development and/or deploymenttoolkit for SN analysis tasks. System 78 may communicate with server 62via a private network or via network 66 (as shown in FIG. 3). SNA system78 may obtain data from registry 74, such as data describing thestructure (e.g., users and connections) and/or activity (e.g., tracedata and communications) of SN 80. SNA system 78 may obtain data fromother sources, such as partners of a service provider of SN 80.Mathematical, statistical, machine-learning, and other algorithmsrunning on system 78 may allow a SN service provider and/or otherpersons or organizations to predict, manage, troubleshoot, or otherwiseinvestigate the behavior of SN 80 and/or system 60.

FIG. 3 shows an illustrative embodiment that separates SNA system 78from SN server 62. In an embodiment, some or all of the functionality ofSNA system 78 may run on one or more SNA systems 78 and/or servers 62.FIG. 3 may be considered a functional or conceptual illustration thatshows logical relationships of system 60. Physical relationships maydiffer from that shown, for example, by implementing all or part of SNAsystem 78 and SN server 62 on the same host computer(s). System 78,whether implemented separately or in combination with other portions ofsystem 60, sometimes may be referred to as an “electronic apparatus.”

FIG. 3 shows an illustrative example of system 60 implemented in aclient-server computing system. System 60 may be implemented in othercontexts and architectures. For example, a telephone service mayfunction as system 60 where subscribers are users 82, telephones aredevices 64, the telephone network is network 66, and telephone calls arecommunications 68. A telephone service may keep records ofcommunications (logs of phone calls) and may apply SNA techniques tothese records. For another example, an online auction service mayfunction as system 60 where buyers and sellers are users 82, computersused for bidding and listing are devices 64, and feedback ratings arecommunications 68. For another example, a banking service may functionas system 60 where payers and payees are users 82, financialtransactions are communications 68, and transaction data is subject toSNA techniques.

Referring now also to FIG. 4, electronic SN 80 may include a set ofusers 82, and one or more pairs of users 82 may have an associatedconnection 84. Each user 82 may be, for example, a person, business,organization, institution, or other entity. Each user 82 may join SN 80,for example, by creating an account with website 70, which may recordassociated account data in registry 74. Each user 82 may log on to anassociated account, publish a profile, offer and accept connections 84with other users 82, send and receive communications 68, shareinformation with other users 82, and otherwise participate in acommunity of SN 80. Examples of SNs 80 may include online services suchas Facebook®, LinkedIn®, Twitter®, and Google+®. Further examples mayinclude telephone services, entertainment services, data services, andthe like. A user 82 sometimes may be referred to as a “member.” Aperson, business, or other entity that operates SN 80 may be called a“SN service provider.”

A connection 84 may be a linkage or relationship, established within SN80, between a pair of users 82. Each user 82 potentially may establish aconnection 84 to another user 82, and therefore potentially to everyother user 82. A connection 84 may be present (linked) or absent (notlinked). A connection 84 may reflect or represent a friendship,followership, or other association between connected users 82. Aconnection 84 may be created by offer and acceptance or may be anautomatic or ad hoc linkage. An established connection 84 may be brokenand/or removed, such as at the request of a user 82. On offering,establishing, or breaking a connection 84, server 62 may updateassociated entries in registry 74. An entry for a user 82 may include,for example, data that describes a connection 84 by identifying theother user 82, connection type, connection status, creation date, and soon. The pattern of connections 84 of SN 80 may change over time, forexample, as users 82 join or quit SN 80 and create or break connections84. A connection 84 may be bidirectional, allowing communications 68 inboth directions, or unidirectional, allowing communications 68 in onlyone direction. An example of a unidirectional connection 84 may be oneassociated with an account created by a SN service provider for its ownuse and linked to users 82 to, for example, broadcast communications 68.

Electronic communication 68 may include any data or message sent to orreceived by a user 82 via a connection 84, via website 70, or via othersources. Examples of types of communications 68 may include connection(“friending”) requests sent, received, accepted, ignored, or declined;profile data (“wall posts”) edited or viewed; comments, announcements,blog postings, or the like; received communications 68 repeated to otherusers (for example, re-tweets); communications 68 addressed to otherusers 82 or non-users; and so on. Additional examples of types ofcommunications 68 may include invitations sent, received, accepted,ignored, or declined; groups joined or quit; subscriptions accepted ordeclined; articles, links, users, products, or services tagged with, forexample, “like,” “want,” or “owned”; recommendations for or againstproducts, services, articles, communications, web pages, or the like;and so on. Additional examples may include data obtained from browsercookies read by SN website 70 or by partner or affiliate websites;databases maintained or accessed by a SN provider and/or its partners,advertisers, or affiliates; and/or other auxiliary information sources.

Additional examples of types of communications 68 may include any dataor message sent to or received by user 82 via an associated messageservice and/or via a publication made by a SN service provider. Anexample of an associated message service may be an email accountprovided by a SN service provider to user 82, for example, to encouragecommunications 68 between users 82 and non-users from the context of SN80. An example of a publication made by a SN service provider may be acommunication 68 indexed by a search engine (Google® or Bing®, forexample) and publically accessible to users 82 and/or non-users. Forexample, a user 82 may create a website-like page on SN 80, the SNservice provider may allow a search engine to index the website-likepage, and incoming referrals from the search engine may be consideredcommunications 68.

Senders and recipients of communications 68 may include other users 82,non-users exchanging messages with user 82 through associated services,and/or the SN service provider and/or its partners and affiliates. Toinclude external communications 68 in a signature graph 112, the graphmay include each search engine, message service, or external othercommunication source as a special external user 82. For example,referrals from a search engine may be considered a salient signal andincluded during SN analysis by modeling the search engine as a connecteduser 82.

The scope of access to communication 68 may be controlled, for example,by privacy options set by user 82. Communication 68 may be globallypublic (accessible to all users 82 and non-users); locally public(accessible to all registered users 82 but not to non-users); community(accessible only to connected users 82), or private (accessible only tospecified users 82), for example. Each type, actual source, and/or scopeof communication 68 may represent a distinct data source.

Communication 68 may include data actively sent by one user 82 to one ormore users 82 or non-users, for example, as a message broadcast by afirst user 82A to all other users 82 connected to user 82A.Additionally, communication 68 may include data passively shared by auser 82. Profile data, for example, may be posted in a public or privatelocation and shared to other users 82 who may visit the location andview the data. Communications 68 may include content displayed onwebsite 70. For example, an advertisement on website 70 broadcast to allusers 82 or targeted to selected users 82 may be communication 68.Communication 68 sometimes may be referred to as a “message.”

Establishing a connection 84 between users 82 may enable passingcommunications 68 between directly connected users 82 and potentiallyalso among indirectly connected users. For example, if first user 82Aconnects to second user 82B and second user 82B connects to third user82C, then first user 82A may be able to exchange communications 68 withthird user 82C as a result of their indirect connection via second user82B. SN 80 thus may include subsets or clusters of users 82 who arelinked together as communities of mutual friends. Clusters may be aspontaneous result of preexisting relationships or common interests, anarranged result of a promotional effort, or otherwise created.

System 60 may maintain distinctions among categories of connection 84.For example, system 60 may distinguish between user-to-user,business-to-user, system-to-user, and system-to-business connections 84.For another example, system 60 may track offered, accepted, or brokenconnections 84 as categories because connection status such as pending,accepted, avoided, or rejected may contain information aboutrelationships between users 82. Each category or status of connection 84may represent a distinguishable feature or data source 97, for example.

SN 80 may be represented or modeled as a network graph 90 that includesa set of nodes 92, where each node 92 may be a representation orabstraction of a user 82. Each pair of nodes 92 accordingly may have anassociated link 94, where each link 94 may be a representation orabstraction of a connection 84. In the illustrative example of FIG. 4,node 92A represents user 82A, node 92B represents user 82B, and so on.As depicted, node 92A connects to node 92B by link 94 ab, to node 92D bylink 94 ad, and to node 92F by link 94 af. Node 92A does not directlyconnect to nodes 92C or 92E. Node 92D does connect to node 92C and 92E,however, so that node 92A has indirect, second-degree links to nodes 92Cand 92E via node 92D. Each of the other nodes 92B, C, D, E, and F hasits own pattern of links 94. The topology of a network graph 90 definedby nodes 92 and links 94 may be called a “link structure 86.” Linkstructure 86 may include associated data or metadata, such as aconnection category and connection status for each link 94.

For simplicity, FIG. 4 depicts a representative network graph 90 withsix nodes 92A-F at a particular moment in time. Actual SNs 80 may haveany number of nodes 92—for example, millions of users—so thatrepresenting the underlying SN 80 may require a network graph 90 withmillions of nodes 92 and links 94. Link structure 86 may change overtime and may reflect the structure of real-world and online friendships,which tend to be influenced by proximity, shared interests, and otherfactors. Since people tend to form groups based on interlockingfriendships, the link structure 86 of the corresponding network graph 90may include clusters and subpopulations of cross-connected users.

Because a node 92 may be an abstraction or representation of a user 82,the terms “node” and “user” may overlap, with “user” more common inphysical or tangible contexts and “node” more common in logical ormathematical contexts. “Link” may similarly overlap with “connection.”Node 92 accordingly may refer to user 82; user 82, to node 92; link 94,to connection 84; and connection 84, to link 94. A node 92 may bereferred to as a vertex, and a link 94 may be referred to as an edge. Inthe figures and elsewhere, the “A-N” notation may indicate an indefiniterange, where “A” refers to a first item and “N” (or other letter, forexample, to distinguish one range from another) refers to a second,third, or subsequent item. The examples of FIGS. 4-8 and elsewhererepresent an illustrative SN 80 with six nodes. Actual SNs may have moreor fewer nodes 92 and/or links 94 than the examples shown.

Network graph 90 or may include zero or more weights 98, each associatedwith a link 94 or node 92. Weight 98 may be a quantity, coefficient,parameter, score, rank, probability, and/or other value used to encodeor represent a feature, characteristic, or property of a node 92 or link94. For example, weight 98 may be a value that represents the influenceof associated user 82 within SN 80. Node 92A that represents an activeor influential user 82A, for example, might have a larger weight 98 thana node 92B of passive or unpopular user 82B. Weights 98 may be used inequations that generate or implement, for example, a graph or a model torepresent differences in probability, influence, affinity, and so on.Each node 92 or link 94 may have zero or more associated weights. Forexample, a link 94 may have one associated weight 98 to represent aprobability value 116, another weight 98 to represent an influencevalue, another weight 98 to represent a rank, and so on. Equations thatcompute the values of weights 98 may consider factors, such as linkstructure 86, probability values, content of trace data 96, thefrequency of propagation of communications 68 to distant users 82, andso on. The presence of weights 98 in network graph 90 (or neighbor graph100 or signature graph 112) may improve its ability to emulate and/orpredict the behavior of a modeled SN 80.

Referring now also to FIG. 5, system 60 may collect trace data 96 aboutone or more users 82. Trace data 96 may include, for example, any datameasured, monitored, recorded, streamed, and/or stored by system 60 totrack the activities of one or more users 82 on SN 80. In theillustrative example of FIG. 5, user 82A associated with node 92A sendscommunication 68A to connected users 82B and 82D (nodes 92B and 92D) butnot to connected user 82F (node 92F). User 82B receives communication68A but does not share it. User 82D relays communication 68A to users82C and 82E as communication 68B. A communication 68 thus may pass fromuser to user (node to node) via the available connections 84 (links 94),initially to users 82 with first-degree connections 84 to starting user82A, and ultimately to distant users 82, who may be persons unknown tostarting user 82A.

A SN service provider may, for example, monitor, record, and/or analyzedata generated by SN 80 and/or system 60 to track activities of users 82and/or monitor changes in link structure 86. Trace data 96 may includeany source or stream of data monitored, collected, sampled, maintained,and/or recorded from SN 80 and/or system 60. For example, trace data 96may include values that document the content, timing, sources,recipients, and other characteristics of communications 68 and otheractivity occurring on SN 80 or system 60.

A SN service provider may collect trace data 96 on a per-node (per-user)basis. For example, as shown in FIG. 5, node 92A generates trace data96A representing the activity of associated user 82A, node 92B generatestrace data 96B of user 82B, and so on. For example, trace data 96A maydocument the sending of communication 68A to users 82B and 82D; tracedata 96B may document the receipt of communication 68A; and trace data96D may document the receipt of communication 68A and the retransmissionof communication 68A as 68B to users 82C and 82E. Each instance of tracedata 96 may, for example, be preserved in a corresponding activity tracelog file to preserve the trace data and enable analysis of activity overtime.

Trace data 96 may include a plurality of data sources 97. Each datasource 97 may represent an aspect or feature of the data of trace data96. Any feature that may be identified, measured, derived, or extractedfrom trace data 96 may be referred to as a data source 97. For example,trace data 96A may include data about connection requests received byuser 82A—and that portion of trace data 96A may be extractable fromtrace data 96A as a data source 97A specific to user 82A. For anotherexample, trace data 96A may include data about log-in and log-outbehavior by user 82A—and that portion of trace data 96A may beextractable as a data source 97B that relates to the session frequencyand duration of user 82A.

Trace data 96 from multiple users 82 may, for example, be combined,merged, aggregated, or otherwise processed to summarize the behavior ofa user 82, selected users 82, or all users 82 with respect to aspecified activity or event. For example, trace data 96 may contain dataabout receipt of and/or responses to a particular communication 68broadcast to one or more users 82 via website 70. Data in multipleinstances of trace data 96 relating to that communication 68 may beextractable as a data source 97. A data source 97 may correspond to anactual or effective origin of data. For example, an external searchengine may pass referrals to users 82 of SN 80 via its search results.Referrals from the search engine to users 82, recorded in multipleinstances of trace data 96, may be extractable as a data source 97. Adata source 97 may be any selection of trace data 96 defined by one ormore features or criteria that select the data of interest. Examples ofsuch features or criteria may include “connection invitations ignoredlonger than 30 days,” “user-to-user communications 68 that include aspecified string of characters,” and so on. Trace data 96 may be (or maybe considered) a database, and data source 97 may be (or may beconsidered) a result returned by a query. Results extracted frommultiple selection features, criteria, or queries may, for example, becombined to summarize a particular category of activity occurring withinSN 80. For example, SN 80 may be a data source 97 to measuresystem-level values, such as total number of users 82, average number ofconnections 84 per user 82, and so on.

Trace data 96 may derive from different actual sources of data, containmixed content, and reflect high-volume communications 68. Trace data 96accordingly may be considered a heterogeneous, dynamic source of data.Link structure data, in contrast, may tend to be more static, since auser 82 may tend to send and receive communications 68 more often thanthe user 82 adds or drops connections 84.

Referring now also to FIG. 6, a neighbor graph 100 may represent aselected user 82A, users 82B-N connected to user 82A, and connections 84ab through 84 an between user 82A and each user 82B-N. A neighbor graph100 may represent a portion of a network graph 90 that includes selecteduser 82A and the first-degree connections of that user 82A. Selecteduser 82A at the focus of graph 100 may be referred to as given user 102.A set of users 82B-N having first-degree connections 84 to given user102 may be referred to as friends or neighbors 104B-N of user 82A orgiven user 102.

In graph 100, a weight 98 may represent any value associated with a node92 or link 94 between given user 102 and a neighbor 104B-N. For example,each weight 98 ab, 98 ac, 98 an may be a probability value associatedwith a link 94, and the set of weights 98 may be a probabilitydistribution 114 of given node 102 over neighbors 104. A computerizedimplementation of graph 100 may generally follow the conceptualabstraction of FIG. 6 and may be coded in any way appropriate to the SNAtask.

A SN service provider may be considered as a special system user 82, andeach new user 82 may automatically create an express or impliedconnection 84 to system user 82, for example, when creating a newaccount. A network graph 90, neighbor graph 100, signature graph 112, ormodel 110 may, for example, include system user 82 and a connection 84between system user 82 and each other user 82 to include system-to-usercommunications 68 during SNA analysis. Website 70 may be regarded as anexpression of a connection 84 between system user 82 and another user82. For example, a SN service provider may include content such aspolls, informative messages, and/or advertising on website 70, which mayinclude features that allow user 82 to respond to the content. SNanalysis may include this content and interaction with it ascommunications 68 between system user 82 and other users 82 and mayinclude communications 68 in network graph 90, neighbor graph 100,signature graph 112, or model 110.

Referring now also to FIG. 7, network graph 90, neighbor graph 100, orassociated data may be represented as a tabular graph 106, which may beused to represent links 94 between pairs of nodes 92 as binary data. InFIG. 7, each node 92 corresponds to a row and/or a column 108, and eachlink 94 corresponds to a row, column intersection that identifies data109. For example, row 1, column 1 may correspond to node 92A; row 2,column 2 may correspond to node 92B; and so on. Using “1” to indicate“link present” and “0” to indicate “link absent,” the presence of link94 ab between node 92A and 92B yields “1” at row 1, column 2; theabsence of link 94 ac between node 92A and 92C yields “0” at row 1,column 2; and so on.

Referring now also to FIG. 8, another example of a tabular graph 107 isshown. Tabular graph 107 represents a set or range of values ashexadecimal digits that may encode weight or probability values.Potential uses of graphs 90, 100, 106, 107, 112 may include SN analysis,which may include computerized mathematical modeling of a SN 80, system60, or related structures.

Referring now also to FIG. 9, a computational model 110 of a SN 80 mayserve as a proxy for the modeled SN 80, for example, to act as apredictive, investigative, and/or diagnostic instrument. By emulating anactual SN 80, model 110 may provide a tool for detecting the propertiesof the modeled SN 80, for predicting the result of a stimulus applied toSN 80, and/or for testing ideas, products, marketing campaigns, or thelike independently from SN 80. Examples of SN analysis tasks may includedetecting communities (e.g., clusters or subpopulations of users 82);predicting churn (e.g., users 82 who might quit SN 80 or drop a productor service); identifying influential users 82 (e.g., users 82 who leadcommunities or anticipate trends); predicting social mass movements; andpredicting the adoption of products or services. Model 110 may allowtesting to occur in secret, for example, to evaluate alternative ortentative plans.

Model 110 may include or implement a network graph 90 and/or a signaturegraph 112, which may be a simplified, reduced, pruned, or sparse versionof a corresponding network graph 90. FIG. 9, for example, shows anexample of a signature graph 112 derived from the network graph 90 ofFIG. 4. Selected links 94 shown in FIG. 4 have been removed in FIG. 9.For example, link 94 ab is present in FIG. 4 and removed in FIG. 9. Amodel 110 that includes a signature graph 112 instead of a full networkgraph 90 may produce faster and/or cheaper SN analysis results, forexample, by reducing computational time and/or cost associated withemulating removed links 94.

SN analysis may include discovering or generating a signature graph 112of a SN 80. A signature graph 112 may be a reduced representation of anetwork graph 90 that produces approximately the same result as SN 80 ornetwork graph 90 for one or more SN analysis tasks. For a SN 80 modeledas a graph Graph(Vertices,Edges) or G(V,E), a signature graph 112 may bea sub-graph SIGN(V,E′), potentially of smaller or much-smaller size thenthe full network graph G(V,E). A graph 112 may be created by removingedges E (in other words, links 94). The removed and/or retained links 94may be selected so that SN analysis performed on graph 112 yields aboutthe same result as the same SN analysis performed on the correspondingSN 80 or network graph 90. Differences between a modeled SN 80 (ornetwork graph 90) and a corresponding graph 112 may be measured by, forexample, monitoring the same value or signal in both contexts toevaluate a difference.

With reference also to FIG. 10, SN analytics system 79 may be adevelopment and/or deployment environment that includes programs, tools,data, and other resources for generating and/or executing a signaturegraph 112 and/or model 110. Generating a graph 112 from SN 80 or networkgraph 90 may include inducing, for some or all nodes 92 (each in turn agiven node 102) and for some or all data sources 97, a probabilitydistribution 114 over neighboring nodes 104. Inducing a distribution 114may include the use of machine-learning techniques, such as a learningto rank (LTR) algorithm 120. Generating graph 112 may include assigningor evaluating a relative importance value of each data source 97, wherea data source 97 may include topological data (link structure 86) and/ortemporal data (trace data 96). Assigning a relative importance value mayinclude computing Kullback-Leibler divergence values, which may measuredistances or differences between pairs of distributions 114. Measuringdifferences between distributions 114 associated with data sources 97may allow evaluation of an average distance for each data source 97 overall nodes 92 of SN 80. Evaluating an average distance for each datasource 97—potentially in conjunction with feature selection and/orcluster analysis techniques—may allow measurement of relativeimportance, for example, to identify representative or important datasources 97. Assigning relative importance to data sources 97 may allowremoving one or more selected data sources 97 from network graph 90 orneighbor graph 100, for example, to simplify computation by excludingselected data sources 97. One or more data-source weights 99, eachassociated with a data source 97, may act as parameters, coefficients,or other values considered in calculations involving an associated datasource 97. A relative importance value, for example, may be quantifiedas a weight 99 used to increase or decrease the impact of the datasource 97 in signature graph 112 according to its measured relativeimportance value.

Generating signature graph 112 may include aggregating distributions 114to produce an overall distribution (or ranking) of neighbors 104 of node102, in effect summarizing multiple distributions 114 (per each neighbor104 and per each data source 97) as an aggregated distribution (per eachneighbor 104 and per all data sources 97). The process of aggregatingdistributions 114 may include the use of voting rules such asKemeny-Young and/or Borda Count rules.

Generating graph 112 may include removing links (edges) 94 from theentire graph G(V,E). The selection of retained and/or removed links 94may employ, for example, a threshold function and/or a probabilityfunction. For example, removing links 94 by sampling links 94 inproportion to aggregated rank may yield a signature graph 112 thatprobabilistically retains high-, medium-, and low-ranking links 94, sothat even low-ranking links 94 proportionately contribute to graph 112.The number of links 94 removed or retained may depend on a desiredcompression ratio and/or a specified acceptable error level.

A SN 80 may yield more than one signature graph 112. Different SNanalysis goals or tasks, for example, may influence the selection ofdata sources 97, features, parameters, and/or algorithms used togenerate graph 112, thereby deriving different graphs 112 from the sameSN 80. A graph 112 may change over time, for example, by updating tracedata 96 and regenerating graph 112.

SN analysis using graph 112 may enable analysis and/or prediction tooccur substantially in real time. A model 110 that includes a graph 112may endeavor to maintain a specified level of accuracy, for example,through the use of algorithms or techniques that minimize one or moredifferences (errors) between graph 112 of model 110 and the modeled SN80 or system 60. Comparing result and/or error values between a model110 and the modeled SN 80 may include, for example, measuring one ormore signals or values in both contexts and measuring or monitoring anydifference for each signal or value.

Generating a graph 112 may include identifying one user 82 andidentifying connections 84 of the one user 82 with other users 82 in anelectronic SN 80. Identifying one user 82 of interest may includeselecting a particular user 82 by, for example, arbitrary selection,random selection, human choice, or specified attributes. Attributes mayexclude from selection system, external, or specified users 82 and/orusers 82 with zero connections 84. After identifying one user 82A forinitial analysis, identifying connections 84 of user 82A may includelooking up in registry 74 the current set of other users 82 connected touser 82A, thereby identifying a set of other users 82. The one user 82Amay be considered as given node 102, and the other connected users 82 asneighbors 104. For example, in the illustration of FIG. 10, theidentified user 82 may correspond to node 102A, and the identified otherusers 82 may correspond to neighbors 104B, D, F of node 102A. Dataregarding the one user 82A or 102 and connected other users 82 or 104 aswell as associated link structure 86, trace data 96, and/or other valuesof interest may be copied to or referenced by SNA system 78, forexample, to isolate the live data on SN server 62 from SN analysistasks.

Generating a signature graph 112 may include creating a neighbor graph100 that includes the one user 82A (given node 102), other users 82connected to the one user 82A (neighbors 104), and connections 84between the one user 82A and other users 82. Neighbor graph 100 may, forexample, be implemented as computer program code that expresses theabstraction of FIG. 6. For example, in the illustration of FIG. 10,neighbor graph 100A includes a given node 102A, neighbors 104B, D, F ofnode 102A, and a set of links 94 between node 102A and each neighbor104B, D, F.

After generating a neighbor graph 100 for a first given node 102 and itsneighbors 104, the process of constructing model 110 may continue tocreate a neighbor graph 100 for second and subsequent given nodes 102and respective neighbors 104. The process may iteratively continue andmay ultimately evaluate each user 82 of SN 80 as a given user/node 102.Model 110 may, in effect, include multiple neighbor graphs 100, reducedto signature graphs 112, and combined as a network graph 90 thatemulates all or part of SN 80.

Generating signature graph 112 may include analyzing a plurality of datasources 97 for communications 68 between one user 82 (node 102) andconnected other users 82 (neighbors 104). Analysis may include inducinga probability distribution 114 from data source 97 for the given node102 with respect to each other neighbor 104. EQ. 1 provides anexpression of a probability calculation.f _(i) ^(s)(j)∀j∈N(i)such that

${\sum\limits_{j \in {N{(i)}}}{f_{i}^{s}(j)}} = {{1\mspace{14mu}{and}\mspace{14mu} 0} \leq {f_{i}^{s}(j)} \leq 1}$where given node 102 is node i, a neighbor 104 is node j, and a datasource 97 is Ds. Iterative calculation may continue for node 102 overall neighbors 104 and all data sources 97. Iterative calculation mayultimately evaluate some or all users 82 as given node 102 (node i) tocalculate a distribution 114 for each user 82, that user's neighbors104, and some or all data sources 97.

For example, in the illustration of FIG. 10, data source 97A of tracedata 96, applied to node 102A with neighbors 104B, D, F, may induce aprobability distribution 114A comprising a probability value 116B, D, Fevaluated for each neighbor. An illustrative example may be using ahistory of product recommendations by user 82A (node 102 or i) as a datasource 97 to evaluate the probability that user 82A forward a productrecommendation to user 82B (node 104B or j). A higher probability forthis outcome may reflect a stronger bond or common interest betweenusers 82A and 82B, for example.

One way to induce a probability distribution 114 of a node i over itsneighboring nodes j is to apply machine-learning techniques, such as alearning-to-rank (LTR) algorithm that, given training data, may extracta learned ranking function, which may be viewed as a probabilitydistribution function over neighbors of node i, as shown below.

f _(i) ^(s)(1),f _(i) ^(s)(2), . . . ,f _(i) ^(s)(n _(i))

Ranking may refer to a process of placing a list or set of items insequence. For example, a search engine may retrieve result items after aquery, rank the results by relevance, and return ranked results to therequesting browser. An information processing or retrieval system thatperforms ranking may include a ranking model, which is a portion of thesystem that encapsulates a ranking standard and applies it to new,unseen data. A LTR algorithm may automatically generate a ranking modelby applying machine-learning techniques. Supervised learning techniques,for example, may use a training data set consisting of a set ofexamples, each tagged with an expected result, to generate a rankingmodel. Training data for a ranking model might include a set of stimulus(event) values, such as queries, each with an associated response(outcome), such as an item matching the query, together with a value,score, or other measure of the rank and/or relevance of the response tothe stimulus.

One way to prepare a training data set may be to obtain a set ofrepresentative examples, have a human arrange the examples in a series(an expected result), and score each example according to its positionin the series. Training data may be obtained automatically orsemi-automatically, for example, by extracting examples from a workingsystem and tagging each example with an expected result based on theobserved behavior of the system. For example, a search engine mayautomatically collect click-through data to obtain a training set for aranking model. For example, an OCR system may automatically collect OCRimages, present images over the Internet as a Turing test, and tag eachimage with human readings to obtain a training set for an OCRclassifier. For an example from a SN 80, training data to generate aranking model that sorts communications 68 by anticipated popularity mayinclude examples of communications 68, each tagged with the number oftimes the communication 68 was passed to another user 82, and eachpotentially associated with features and/or attributes that may indicateor influence popularity. Trace data 96 that records a history ofcommunications 68 may allow training data to be obtained retrospectivelyfrom SN 80.

During training, LTR algorithm 120 may rank training data with itscurrent ranking model, compare the actual and expected order, measure anerror value, apply a learning rule to adjust weights or other values toreduce error, and repeat the training cycle until the current rankingmodel sorts training data (or a test data set of tagged examples)approximately in an expected order. After training, the learned rankingmodel may be used as a ranking function to sort new, unseen data into aseries similar to that of the training data.

In an embodiment, the process of generating a signature graph 112 mayuse an LTR algorithm 120 to induce a probability distribution 114 of anode 102 over its neighbors 104 by learning a probability distributionfunction for node 102. As shown in FIG. 10, link-structure data 106 maybe used to identify one node 102 (node i) and its neighbors 1048, D, F(nodes j). Link-structure data 106 may include or refer to rankableattributes, such as number of shared connections per neighbor, totalnumber of connections per neighbor, connection creation date and otherconnection metadata, influence scores and other neighbor metadata, andso on. Link-structure data 106 processed by ranking algorithm 120 mayyield a probability value or weight 116B, D, F for each neighbor 104B,D, F. The resulting distribution 114X may be represented as a tabularweight graph 107X.

Trace data 96 may include multiple data sources 97A-N. Data source 97A,processed by ranking algorithm 120, may yield a probability value 116(which may be an example of a weight 98) for each neighbor 104.Distribution 114A from trace data 97A may be expressed as graph 107A.Data source 97N similarly may yield a distribution 114N and graph 107N.For each data source 97 of trace data 96, LTR algorithm 120 in effectlearns a distribution 114 by estimating or maximizing a probabilityfunction from training data sampled from each respective data source 97.

LTR algorithm 120 may include a learning rule that governs how LTRalgorithm 120 adjusts its ranking model to improve its fit to thetraining data. In an embodiment, LTR algorithm 120 may employ a maximumlikelihood base learning rule. The equation below shows an expression ofthis learning rule, where LS represents a link structure 86 (a set ofconnected nodes 92) and RS represents a communication structure (a setof nodes within LS that receives a communication 68 from a given nodewithin LS).

$\min\limits_{\langle{{f_{1}^{s}{(.)}},{f_{2}^{s}{(.)}},\mspace{11mu}\ldots\mspace{14mu},{f_{6}^{s}{(.)}}}\rangle}\left\lbrack {{- {\sum\limits_{{({i,j})} \in {RS}}{\log\left( {f_{i}^{s}(j)} \right)}}} - {\sum\limits_{{({i,j})} \in {{LS}/{RS}}}{\log\left( {1 - {f_{i}^{s}(j)}} \right)}}} \right\rbrack$${s.t.{\sum\limits_{j \in {N{(i)}}}{f_{i}^{s}(j)}}} = {1{\forall{i \in {LS}}}}$0 ≤ f_(i)^(s)(j) ≤ 1∀(i, j) ∈ LS

The above equation may implement a maximum likelihood estimation (MLE)method. Given a statistical model and a sample of a population, a MLEmethod may estimate parameter values within the model to fit the sample.Here, the statistical model may be a neighbor graph 100, the populationsample may be data from data source 97, and parameter values may beprobability values 116, each associated with a link 94 between node 102and a neighbor 104. The above equation may estimate parameters f₁ ^(s)(), f₂ ^(s)( ), and so on as probability values 116 to fit the sample ofdata source 97. Additionally, the above equation may select values 116that give the observed data the greatest probability, and the set ofvalues 116 for node 102 may represent a probability distribution 114 ofnode 102 over its neighbors 104.

Analyzing a plurality of data sources 97 for communications 68 betweenone user 82 and other connected users 82 may include assigning arelative importance value to each data source 97 of the plurality ofdata sources 97. Assigning a relative importance value may includecalculating distances or differences between distributions 114, forexample, to rank multiple distributions 114, each associated with a datasource 97, in a series by relative importance.

In an embodiment, assigning a relative importance may includedetermining one or more Kullback-Leibler (KL) divergence values. A KLdivergence value may measure a difference between two probabilitydistributions, where the difference is the number of extra bits requiredto encode samples of one distribution in a code based on the otherdistribution. Fewer extra bits—a smaller KL divergence—may indicategreater similarity between the distributions. The equation belowexpresses KL divergence between two distributions f^(s) and f^(t).

${{KL}\left( {f^{s}{}f^{t}} \right)} = {\sum\limits_{i = 1}^{n_{i}}{{f^{s}(i)}{\ln\left( \frac{f^{s}(i)}{f^{t}(i)} \right)}}}$

In the above equation, KL(f^(s)∥f^(t)) measures the number of extra bitsrequired to encode samples of f^(s) in a code based on f^(t). In otherwords, KL(f^(s)∥f^(t)) measures similarity between f^(s) and f^(t). Ifthe distributions are identical, that is, if f^(s)≡f^(t), thenKL(f^(s)∥f^(t))=KL(f^(t)∥f^(s))=0. In other words, identicaldistributions may encode each other with zero inefficacy. If thedistributions are non-identical, then KL(f^(s)∥f^(t))>0,KL(f^(t)∥f^(s)|)>0. In other words, different distributions may encodeeach other with a positive inefficiency that may depend on the encodingdirection and increase as the difference between the distributionsincreases. If distributions are the reverse of each other, the KLdivergence may be a large value.

Referring now also to FIG. 11, first data source 97A may induce a firstdistribution 114A (or f^(s) in the above equation) for node 102A andneighbors 104, and second data source 97B may induce a seconddistribution 114B (or f^(t)) for node 102A and neighbors 104. Solvingthe above equation yields a KL divergence of distributions 114A and114B. The equation below and FIG. 12 show an example for a given node102A with three neighbors 104A, B, C, and include representativeprobability values 116 for distributions 114A and 114B.

$\begin{matrix}{{{KL}\left( {f^{s}{}f^{t}} \right)} = \left\lbrack {{0.5{\ln\left( \frac{0.5}{0.2} \right)}} + {0.3\;{\ln\left( \frac{0.3}{0.3} \right)}} + {0.2\;{\ln\left( \frac{0.2}{0.5} \right)}}} \right\rbrack} \\{= 0.27488722}\end{matrix}$ $\begin{matrix}{{{KL}\left( {f^{t}{}f^{s}} \right)} = \left\lbrack {{0.2{\ln\left( \frac{0.2}{0.5} \right)}} + {0.3\;{\ln\left( \frac{0.3}{0.3} \right)}} + {0.5\;{\ln\left( \frac{0.5}{0.2} \right)}}} \right\rbrack} \\{= 0.27488722}\end{matrix}$

The above equation evaluates KL(f^(s)∥f^(t)) and KL(f^(t)∥f^(s)),thereby measuring the divergence of distribution 114A from distribution114B and the divergence of distribution 114B from distribution 114A.

One way to order the members of a set in a series is to compare eachmember to a standard and sort the members by a measure of similarity toor difference from the standard. A set of distributions 114 may beranked in a series by computing a KL divergence value for eachdistribution 114 with respect to the same probability distribution (adesignated standard) and sorting distributions 114 by the associated KLdivergence values. The designated standard may be a measured, estimated,or hypothetical probability distribution 124 selected or prepared foruse as a standard of comparison. A hypothetical distribution 124 may bederived from distributions 114 that are to be compared with it, forexample, as a kind of average of actual distributions 114. Otherexamples of hypothetical distribution 124 may include a syntheticdistribution or a random distribution.

For given node 102A and neighbors 104, first data source 97A may inducea first distribution 114A, and second data source 97B may induce asecond distribution 114B, for example, by evaluating data sources 97Aand 97B via LTR algorithm 120. Distributions 114A and 114B may be usedto synthesize hypothetical distribution 124, for example, by averagingor otherwise aggregating distributions 114A and 114B. For example,hypothetical distribution 124 (M, in the equation below) may be definedas M=[0.5 f^(s)+0.5 f^(t)], in effect averaging distribution 114A orf^(s) of data source 97A with distribution 114B or f^(t) of data source97B. Actual data sources 97A-N thus may be used to generate ahypothetical distribution 124 that subsequently may serve as a standardof comparison for distributions 114A-N, ultimately obtained from linkstructure 86 and trace data 96.

As shown in the equation below, evaluating a divergence for firstdistribution 114A or f^(s) with respect to distribution 124 or M andalso evaluating a divergence for second distribution 114B or f^(t) withrespect to distribution 124 enables a comparison of distributions 114Aand 114B with respect to the same standard, namely distribution 124. TheKL divergence values also permit evaluation of a distance between thedivergences, as shown in the equation below.JS(f ^(s) ,f ^(t))=[0.5KL(f ^(s) ∥M)+0.5KL(f ^(t) ∥M)]dist(f ^(s) ,f ^(t))=√{square root over (JS(f ^(s) ,f ^(t)))}where M=[0.5f ^(s)+0.5f ^(t)]

In the above equation, dist(f^(s), f^(t)) represents a distance betweenfirst distribution 114A and second distribution 114B.

Continuing the example of FIG. 12, the equation below evaluates firstdistribution 114A or f^(s) with respect to distribution 124 or M andsecond distribution 114B or f^(t) with respect to hypotheticaldistribution 124, yielding a distance value for distributions 114A and114B.

$\begin{matrix}{{{KL}\left( {f^{s}{}M} \right)} = \left\lbrack {{0.5{\ln\left( \frac{0.5}{0.35} \right)}} + {0.3\;{\ln\left( \frac{0.3}{0.3} \right)}} + {0.2\;{\ln\left( \frac{0.2}{0.35} \right)}}} \right\rbrack} \\{= 0.107002483}\end{matrix}$ $\begin{matrix}{{{KL}\left( {f^{t}{}M} \right)} = \left\lbrack {{0.2{\ln\left( \frac{0.2}{0.35} \right)}} + {0.3\;{\ln\left( \frac{0.3}{0.3} \right)}} + {0.5\;{\ln\left( \frac{0.5}{0.35} \right)}}} \right\rbrack} \\{= 0.107002483}\end{matrix}$ JS(f^(s), f^(t)) = 0.107002483dist(f^(s), f^(t)) = 0.32711234

Obtaining a KL divergence value or other distance metric for each of aplurality of probability distributions 114 with respect to ahypothetical distribution 124 accordingly may enable the comparison orranking of the plurality of distributions 114 with respect to eachother. In effect, distributions 114 may be sorted by divergence fromhypothetical distribution 124.

In an embodiment, computing a relative importance of all data sources 97may include computing a weight value (lambda) that expresses therelative importance of a given data source 97 with respect to all datasources 97. An example of a method for computing a relative-importancevalue (weight lambda) may include defining a random variable R_(t) ^(s)for each data source 97 such that the distribution of the randomvariable is given by the equation below.

f _(i) ^(s)(1),f _(i) ^(s)(2), . . . ,f _(i) ^(s)(n _(i))

For a pair of data sources 97 (D_(s), D_(t)), computing a relativeimportance value may include computing a distance value between one datasource 97A and another data source 97B (from the perspective of givennode 102, node i). The equation below provides an example of a distancecalculation.dist_(i)(s,t)=√{square root over (JS(R _(i) ^(s) ,R _(i)^(t)))}=[0.5KL(R _(i) ^(s) ∥M)+0.5KL(R _(i) ^(t) ∥M)]^(0.5)where M=0.5R _(i) ^(s)+0.5R _(i) ^(t)

In the above equation, hypothetical distribution 124 may be an averageof random distributions R_(i) ^(s) (of one data source D_(s)) and R_(i)^(t) (of another data source D_(t)) for given node 102 (node i).Evaluating a KL divergence between hypothetical distribution 124 and therandom distributions contributes to evaluating the distance—dist_(i)(s,t)—between data source 97A and data source 97B.

Computing a relative importance value of each data source 97 may includeevaluating, for every pair of data sources 97, an average distance overall nodes 102 in SN 80. In other words, taking each node 92 in turn asgiven node 102, evaluate a per-node distance via the above equation,then average the resulting per-node distances. The resulting averagedistance in effect blends the per-node distances, yielding a singleaverage distance value for all nodes 92 of SN 80 with respect to thatpair of data sources 97. The equation below shows an example of aresulting distance matrix.

${dist} = \begin{bmatrix}{node} & 1 & 2 & \ldots & {V} \\1 & 0 & {{dist}\left( {1,2} \right)} & \ldots & {{dist}\left( {1,{V}} \right)} \\2 & {{dist}\left( {2,1} \right)} & 0 & \ldots & {{dist}\left( {2,{V}} \right)} \\\vdots & \vdots & \vdots & 0 & \vdots \\{V} & \left. {{dist}\left( {{V},1} \right)} \right) & {{dist}\left( {{V},2} \right)} & \ldots & 0\end{bmatrix}$

In an embodiment, computing a relative importance value may includespectral clustering or other cluster analysis techniques.

Referring now also to FIG. 13, evaluating the above equation for aplurality of data sources 97 may yield a plurality of average distancevalues 132. Clustering techniques, applied to the plurality of distancevalues 132, may disclose two or more clusters 134A-N in the distancevalues 132. A cluster 134 may represent a group of data sources 97 thathave a natural affinity or correlation. Relative importance value(lambda) for each data source 97 (Ds) may be proportional to the localdensity of the cluster, as shown in the equation below.

$\lambda_{s} \propto \frac{1}{{Local}\mspace{14mu}{density}}$

Computing a relative importance value for each data sources 97 mayenable a selection among data sources 97, for example, to simplifycomputation performed by model 110 by reducing the amount of dataprocessed by model 110. Selection among data sources 97 may seek toretain salient data sources 97 and/or omit non-salient data sources 97,for example, by considering the relative importance value of each datasource 97 during a selection process. For example, in an embodiment, aselection process may remove or retain data sources 97 by sampling datasources 97 in proportion to relative importance, so that more-importantand less-important data sources 97 are represented in model 110 inproportion to relative importance. In an embodiment, feature selectionapproaches can be used to select a subset of data sources 97.

In an embodiment, computing a relative importance value (lambda) of adata source 97 may include the application of machine-learningtechniques. For any pair of data sources (D_(s), D_(t)), The equationsbelow expresses the relative importance value (lambda) of a data sourceDs in proportion to a KL divergence.λ_(s) ∝KL(R _(i) ^(s) ∥M)

The above equation implies the equation below.

$\frac{\lambda_{s}}{\lambda_{t}} = \frac{{KL}\left( {R_{i}^{s}{}M} \right)}{{KL}\left( {R_{i}^{t}{}M} \right)}$

The above equation in turn leads to the learning formulation below.

$\min\limits_{\lambda}\sqrt{\left\lbrack {\sum\limits_{({s,t})}{\sum\limits_{i \in V}\left( {\frac{\lambda_{s}}{\lambda_{t}} - \frac{{KL}\left( {R_{i}^{s}{}M} \right)}{{KL}\left( {R_{i}^{t}{}M} \right)}} \right)^{2}}} \right\rbrack}$${s.t.{\sum\limits_{s = 1}^{d}\lambda_{s}}} = 1$ 0 ≤ λ_(s) ≤ 1

Generating a signature graph 112 of a SN 80 may include aggregatingmultiple probability distributions 114 of a given node 102 with respectto its neighbors 104. Each distribution 114 may derive from a differentdata source 97, and each probability value 116 may measure an affinity,influence, or other relationship between the given node (user) 102 and agiven neighbor (friend) 104 as observed though that data source 97.Aggregating distributions 114 derived from multiple data sources 97 mayin effect blend or merge distributions 114 to measure a composite orconsensus affinity between given user 102 and given neighbor 104.Aggregation may produce a consolidated score value, ultimately based onmultiple data sources 97, that measures the strength of a pair-wiserelationship generalized over multiple data sources 97. This measurementmay enable a method for simplifying an associated neighbor graph 100and/or network graph 90, for example, by removing links 94 to one ormore selected neighbors 104 based at least in part on their aggregatedor generalized scores.

In an embodiment, an aggregation process may include a Kemeny-Young (KY)ranking rule, which is a voting system that identifies the most popularchoice(s) among candidates via preferential ballots and pair-wisecomparison counts. A KY ranking rule requires voters to rank candidatesin order by preference and may allow voters to express equal preferenceby placing more than one candidate at the same preference level. A KYranking rule scores candidates with a tally table that, for eachpossible pair of candidates A,B counts the number of votes for A>B, A=B,and A<B. The table yields a consolidated score value for each possiblepreference sequence. The sequence with the highest score is the winningsequence, and the top-ranked (most popular) candidate in the winningsequence is the unique winner if one is sought.

To apply a KY ranking rule to a neighbor graph 100, each neighbor 104 ofa given node 102 may act as a candidate, each data source 97 may act asa voter, and each distribution 114 derived from a data source 97 may actas a preferential ballot. Sorting neighbors 104 by associatedprobability values 116 sorts neighbors 104 in preference order, andneighbors 104 that happen to have the same probability value 116 mayreceive “equal preference” votes. Treating these probability sequencesas preferential votes for neighbors 104 and tabulating the votes in a KYtally table aggregates the distributions 114 and yields a score for eachpossible preference sequence. The sequence with the highest score—thewinning sequence—identifies a composite preference order that arrangesneighbors 104 (candidates) in a popularity order influenced by allparticipating distributions 114 and ultimately by all corresponding datasources 97. Voting aggregates data sources 97, which pluralisticallydetermine the winning neighbor(s) 104. A winning popularity sequence maybe used to remove links 94 (sparsification), for example, by deletinglinks 94 to one or more neighbors 104 based on their scores or positionsin the sequence.

Referring now also to FIG. 14, for a given node 102 with neighbors 104,each data source 97 may yield a probability distribution 114 thatincludes a probability value 116 associated with each neighbor 104.Placing neighbors 104 in order by probability value 116 ranks neighbors104 in the same way that KY voters rank candidates in order bypreference. KY rank matrix 140 may rank neighbors in proportion toprobability mass and may act as a KY tally table. Scoring matrix 140 foreach possible sequence of neighbors 104 via pair-wise voting graph 142yields a score value for each possible sequence of neighbors 104.Sorting sequences by score identifies the sequence with the highestscore, and the order of neighbors 104 within the sequence indicates thestrength of a relationship between each neighbor 104 and given user 102.For example, the top-listed neighbor 104 in the winning sequence mayidentify the neighbor 104 with the strongest composite affinity to agiven user based on the aggregated distributions 114 and ultimately ondata sources 97. Preference order may be used to remove links 94, forexample, by deleting neighbors 104 based on their scores (vote totals)or positions in the winning sequence.

An implementation of a KY ranking rule may be computationally complex,especially when evaluating a large number of candidates. An embodimentmay use a KY approximation scheme, for example, to reduce executiontimes.

In an embodiment, a rank aggregation process may include a Borda Count(BC) ranking rule, which is a voting system that requires voters to rankcandidates in preference order, awards points to each candidate based onpreference positions, and totals points to determine an overallpreference order among candidates. For example, in an election with fourcandidates, for each ballot, the first-place candidate receives fourpoints; the second-place candidate, three points; and so on. Points fromall ballots are totaled for each candidate, and each candidate receivesa point total. The largest point total indicates the winner; thenext-largest, the runner up; and so. Totals may be used to pickwinner(s) or to arrange candidates in preference order.

To apply a BC ranking rule to a neighbor graph 100, each neighbor 104may act as a candidate; each data source 97, as a voter; and eachprobability distribution 114, as a preferential ballot. For eachdistribution 114, sorting neighbors 104 by probability values 116 sortsneighbors 104 in preference order. A tie within a distribution 114(neighbors 104 with the same probability value 116) may be resolved by,for example, random selection. Preference order within a distribution114 controls the number of points awarded to each neighbor 104 for thatdistribution 114. Summing all points for all neighbors 104 for alldistributions 114 yields a total score for each neighbor 104, and scoreorder indicates preference order among neighbors 104. The totals, summedacross all distributions 114, in effect aggregate distributions 114,each ultimately derived from a data source 97. All participating datasources 97 thus participate in a consensus vote that may preserve aninfluence from each data source 97 in the winning sequence of neighbors104. Preference order may be used to remove links 94, for example, bydeleting neighbors 104 based on scores (vote totals) or positions in thewinning sequence.

Referring now also to FIG. 15, for a given node 102 with neighbors 104,each data source 97 may yield a distribution 114 that includes aprobability value 116 or weight associated with each neighbor 104.Within each distribution 114, placing neighbors 104 in order byprobability value 116 ranks neighbors 104 in preference order. Rankmatrix 144 may record points awarded according to preference order foreach distribution 114 (or data source 97). Total points across alldistributions 114 yields a numerical score for each neighbor 104, andsorting by total points identifies a preference order among neighbors104. For example, the top-scoring neighbor 104 may indicate the neighbor104 with the strongest composite affinity to given user 102 based on theaggregated distributions 114.

In an embodiment, BC point totals may be summed without weighting, forexample, to treat every distribution 114 equally in the BC votingprocess. In another embodiment, points from one or more distributions114 may be adjusted by weight values 146 applied to the associatedprobability values and/or point values, then summed to produce weightedBorda scores 148. For example, a particular data source 97 may be knownto be salient to the SNA task at hand. Multiplying the point value forthat data source 97 by a relatively large weight value 146 may increasethe impact of that data source 97, for example, to reduce the risk ofdiluting the signal from the salient data source 97.

In an embodiment, the process of evaluating a relative importance valueof each data source 97 may be combined with the process of aggregatingrank of each data source 97. For example, for a particular SN analysistask, it may be known that certain neighbors 104 of given node 102 mustbe removed from (or retained within) signature graph 112. Thisanalytics-specific constraint may be folded into a learning problem thatcomputes relative importance values of data sources 97 as well asaggregated ranking as one single optimization problem.

For example, for every given node 102 (node i), define a new randomvariable R₁, for example, as shown in the equation below.

$R_{i} = {\sum\limits_{s = 1}^{d}{\lambda_{s}R_{i}^{s}}}$${{{where}\mspace{14mu}{\sum\limits_{s = 1}^{d}\lambda_{s}}} = 1};{0 \leq \lambda_{s} \leq 1}$

The distribution of the random variable may be given by:

(f _(i)(1),f _(i)(2), . . . ,f _(i)(n _(i))

A probability distribution f_(i) ^(s)(.) over neighbors 104 of givennode 102 (node i) naturally induces a ranking of neighbors 104 whereneighbors 104 are simply ranked by the corresponding probability value.Such a ranking may be denoted by rank(f_(i) ^(s)).

For this, assume that N(i,λ,e) denotes the set of neighbors 104 selectedby an unsupervised algorithm when aggregated ranking is rank(f_(i)).

Next define empirical loss I for every node i such that l(i,λ,e) equalsthe number of differences in set N(i,λ,e) from the training data. Asupervised learning problem then can be posed as shown in the equationbelow.

$\min\limits_{\lambda}{\sum\limits_{i \in V}{l\left( {i,\lambda,e} \right)}}$${{s.t.\mspace{14mu}{\sum\limits_{s = 1}^{d}\lambda_{s}}} = 1};{0 \leq \lambda_{s} \leq 1}$

Solving the above equation yields a relative importance weight vector(lambda) that can be used for computing aggregated ranking.

A SN 80 may have many users 82, many connections 84, and a large volumeof communications 68. A network graph 90 that represents an entire SN 80therefore may have many nodes 92, many links 94, and a large flux ofdynamic trace data 96. Attempting to emulate or simulate a full-size SN80 may trigger practical issues relating to execution speed and/orfinancial cost. A model 110 that includes a network graph 90 or neighborgraph 100 preferably returns a near-real-time result and runs on apractical, economical SNA system 78. The computational burden of afull-scale emulation may delay results and/or force the use of expensivecomputational resources.

One way to reduce execution time and/or equipment cost is to reduce thecomputational complexity of model 110. One way to reduce complexity maybe to reduce the number of data sources 97, for example, by selectingdata sources 97 based on a relative importance value. Another way toreduce complexity may be to reduce the number of emulated links 94.Generating a signature graph 112 may include a pruning or sparsificationstep that may retain and/or remove selected links 94. Pruning preferablyshould avoid skewing signature graph 112—and the behavior of model 110that includes graph 112—away from the behavior of the modeled SN 80.Avoiding skewing may include, for example, proportionally retainingstrong links 94 and/or removing weak links 94. A pruned network graph 90or neighbor graph 100 may be a signature graph 112.

Referring now also to FIGS. 16 and 17, a signature graph 112 may be aportion of a network graph 90 after removing selected links 94. Theillustrative network graph 90 of FIG. 16, for example, includesaggregated rank values 150 associated with links 94. Link 94 ad, forexample, has an associated rank value 150 ad, ranked (1); link 94 af hasan associated rank value 150 af, ranked (2), and link 94 ab has anassociated rank value 150 ab, ranked (3). In signature graph 112 of FIG.17, link 94 ab of node 102 has been removed. Signature graph 112 issmaller and simpler than the full network graph 90, and a model 110 thatincludes signature graph 112 may run faster on a given SNA system 78than a model 110 that instead includes the full network graph 90.

In an embodiment, pruning may remove links 94 by applying a thresholdfunction. For example, pruning may remove all links 94 ranked below aspecified threshold value, such as, an aggregated rank value. Athreshold value may be a count (“remove all below a given position”) ora score (“remove all below a given value”). Counts, positions, and/orscores may be or may derive from aggregated ranking (including scoresand preference order) determined by, for example, a KY or BC rankingrule. A higher specified threshold value may prune links 94 moreaggressively, reducing the size of signature graph 112, potentiallyreducing its execution time, and potentially increasing its error withrespect to the modeled SN 80. A lower threshold value may prune links 94less aggressively, yielding a larger and potentially slower and/or moreaccurate graph 112.

In an embodiment, pruning may remove links 94 by random sampling. Forexample, each link 94 may face some specified chance of being removedfrom network graph 90, so that each link 94 has an equal risk ofdeletion. A 50-50 coin-flip applied to each link 94, for example, maycut network graph 90 substantially in half. Pruning by random selectionmay reduce the risk of biasing or skewing graph 112 and any relatedmodel 110. Increasing or decreasing a chance value applied duringsampling may allow control over the amount of compression achievedduring pruning.

In an embodiment, pruning may remove links by statistical sampling. Forexample, a pruning process may remove or retain links 94 such that theprobability of removing or retaining a link 94 from a given node 102 toa neighboring node 104 is proportional to the rank of that link 94. Therank value may be, for example, an aggregated rank score or positiondetermined by a KY or BC ranking rule. In an embodiment, a statisticalsampling method may, for every node i, retain its [deg(i)]^(e) number oftop-most ranked neighboring links (edges) in the final aggregated rankedlist where 0≤e≤1. In an embodiment, the parameter e may be learned by agrid search method. A sampling that discards more links 94 may achieve ahigher compression ratio than a sampling that discards fewer links 94.In an embodiment, a desired compression ratio may govern the number oflinks 94 removed.

Increasing the compression ratio may increase the error of graph 112with respect to the modeled SN 80. In an embodiment, a link-pruningprocess may include measuring or monitoring one or more error values,for example, to evaluate the effect of removing links 94 and/or controlthe number or percentage removed. For example, specifying an acceptablemaximum error level may allow a pruning process to automatically seekthe smallest signature graph 112 within the acceptable error and mayfacilitate finding values for parameters that influence graph 112 ormodel 110. An LTR algorithm 120, for example, may include parametersthat influence its machine-learning process, and monitoring anacceptable error may facilitate setting these parameters. An error valuemay include a measurement taken from a network graph 90 and from acorresponding signature graph 112, for example, to calculate adifference value that measures an error.

Referring now also to FIG. 18, a method 200 for ranking one user'sconnections in an electronic social network may include identifying oneuser's connections with other users in an electronic SN, at 202. Themethod may additionally include analyzing a plurality of data sourcesfor electronic communications between the one user and the other users,at 204. The method may further include calculating, for each of theother users, the probability that the one user will communicate withthat other user based on the analyzed plurality of data sources, at 206.The method additionally includes ranking the one user's connections withthe other users based on the calculated probabilities, at 208. Method200 may include other, alternative, or additional elements; may omit oneor more elements; and/or may follow a different sequence of elementsfrom that listed.

Identifying one user's connections at 202 may include selecting one user82 (given user 102) for analysis. A selection may occur by applying anycriterion or criteria to users 82 of SN 80. Criteria may includearbitrary selection, random selection, and/or human choice; selecting auser 82 according to the presence or absence one more features,characteristics, and/or attributes; the submission of a query to adatabase of users 82; and so on. Additionally, identifying one user'sconnections at 202 may include identifying, for the selected user 82,connections 84 (links 94) of the selected user 82 to other users 82(neighbors 104) in SN 80. Moreover, identifying one user's connectionsat 202 may include looking up in registry 74 indicia that identify a setof connected other users 82. If selected user 82 has zero connections84, or if selected user 82 is a system, external, or other designateduser 82, then identifying one user's connections at 202 may includerejecting selected user 82 and selecting another user 82.

After analyzing a first selected user 82, method 200 may return toidentifying at 202 to select a second or subsequent user 82 and node102. When selecting a second or subsequent user 82, identifying oneuser's connections at 202 may include selecting next the second orsubsequent user 82 from the other users (neighbors 104) of the firstselected user 82. The process of generating a SN model 110 mayultimately iterate or some or all first-degree neighbors 104 of thefirst selected user 82, and to some or all second- and subsequent-degreeneighbors 104, and potentially to all users 82 of SN 80.

Analyzing a plurality of data sources at 204 may include identifyinglink-structure data 86 and/or trace data 96 associated with selecteduser 82 (given node 102) and/or each user 82 of the set of otherconnected users 82 (neighbors 104). Analyzing a plurality of datasources at 204 may include, for each one user 82 of interest, makingcopies of (or references to) associated registry 74 data, link-structuredata 86, and/or trace data 96, for example, to isolate the SN analysisprocess from the live data of SN 80 and system 60.

Analyzing a plurality of data sources at 204 may include selecting oneor more data sources 97 of interest in link-structure data 86 and/ortrace data 96. Selecting data sources 97 may include selection by one ormore criteria, features, or attributes. Examples of criteria may include“data sources 97 that include communications 68 sent via website 70 to aspecified user 82 on a specified date” or “data sources 97 that includecommunications 68 sent by a first specified user 82 to a secondspecified user 82.” For example, a SN analysis task may seek to capturedata associated with a particular advertisement broadcast to users 82 ina particular region. The selection criterion accordingly may specifydata sources 97 known to include records of that communication 68.

Analyzing a plurality of data sources at 204 may include, within all orselected data sources 97, selecting communications 68 of interest.Selected communications 68 may include communications 68 selected by oneor more criteria, features, or attributes. An example of a criterion mayinclude user identifiers associated with particular users 82. Forexample, a SN analysis task may seek to extract from trace data 96 ofthe one user 82 (node 102) communications 68 sent to or received by oneor more specified neighbors 104. Analyzing a plurality of data sourcesat 204 accordingly may include selecting communications 68 sent by givennode 102 to each neighbor 104, or sent by each neighbor 104 to givennode 102, for example, to characterize communications 68 within theassociated neighbor graph 100.

For example, if a SN analysis goal is to identify users 82 at risk ofquitting SN 80, then each user's history of breaking connections 84 maybe known to be salient and selected as a data source 97. For example, ifa SN analysis goal is to identify users 82 who anticipate trends, thencommunications 68 that eventually pass to distant connections 84 may beknown to be salient and selected as a data source 97. Selected datasources 97 may include data sources 97 not known salient, for example,to allow the SN analysis process to detect important data sources, forexample, as a result of the application of machine-learning, automatedranking, statistical sampling, and/or clustering techniques.

Analyzing a plurality of data sources at 204 may further includeweighting electronic communication data from each data source 97. Forexample, each data source 97 may differ in salience or importance withrespect to the SNA task. A weight value associated with each data source97 may provide a mechanism for adding or reducing emphasis on each datasource 97 when generating and/or evaluating a signature graph 112, forexample, to compensate for differences in salience or importance.Analyzing a plurality of data sources at 204 may include associating aweight parameter with a data source 97, assigning a weight value to eachweight parameter, and considering the weight value as a factor incalculations that include the data source 97. Each data source 97accordingly may have an associated weight parameter and value. In anembodiment, analyzing a plurality of data sources at 204 may includeassigning a value to each weight parameter based on a relativeimportance value (rank score and/or rank position) assigned to theassociated data source 97. For example, a large relative importancevalue may map to a large weight value, so that an important data source97 receives increased emphasis within signature graph 112.

Calculating probability at 206 may include, for a selected user 82(given user 102) and data source 97, inducing a probability distribution114 with respect to the other users 82 (neighbors 104) connected toselected user 82. In an embodiment, inducing a distribution may includelearning a distribution 114 via a learning-to-rank (LTR) algorithm 120,which may generate a learned ranking function that may be or mayapproximate a probability distribution function. In an embodiment, LTRalgorithm 120 may include a maximum likelihood base learning rule.

In an embodiment, calculating probability at 206 may include assigning arelative importance value to each data source 97 of the plurality ofdata sources 97. Assigning a relative importance value may includecalculating a distance, difference, or divergence measure between eachdistribution 114 induced from a data source 97 and a measured,estimated, or hypothetical probability distribution 124 selected orprepared as a standard of comparison. Calculating a distance,difference, or divergence measure may include calculating aKullback-Leibler divergence value, for example, to measure thedivergence between each distribution and the standard of comparison.Distance, difference, or divergence values, each associated with adistribution and ultimately with a data source 97, may be used to rankdistributions and therefore associated data sources 97 relative to thestandard of comparison. Calculating probability at 206 may include usinga rank score and/or rank position of a data source 97 to measure and/orindicate the relative importance of the data source 97. Calculatingprobability at 206 may include using relative importance values (scoresand/or positions) to select one or more data sources 97, for example, toinclude or exclude selected data sources 97 from other processing ofmethod 200. This selection may include selecting data sources 97 aboveor below a specified threshold relative importance value (a score and/orposition). This selection may include selecting data sources 97 inproportion to relative importance values, for example, retain a sampleof data sources 97 that proportionately includes data sources 97 over aspecified range of relative importance values.

Calculating probability at 206 may further include calculating, for eachof the other users 82 (neighbors 104), the probability that the one user82 (node 102) will communicate with the other user 82 based on a subsetof the analyzed data sources 96, the subset excluding one or more datasources with a relative importance value below a predetermined thresholdimportance value. Increasing (or decreasing) the predetermined orspecified threshold value may increase (or decrease) the number of datasources 97 included in graph 112. Increasing the number of data sources97 may increase the computational complexity of graph 112, reducingexecution speed—and may also increase the accuracy of graph 112 as aresult of including more data at lower importance values. Similarly,decreasing the number of data sources 97 may reduce computationalcomplexity, increase execution speed, and potentially reduce accuracy byexcluding a larger number of data sources 97 at higher importancevalues. For example, a given SN analysis task may require anear-real-time response from graph 112 may specify a high threshold tolimit the number of data sources 97 and favor a faster response.

Calculating probability at 206 may further include calculating, for eachof the other users 82 (neighbors 104), the probability that the one user82 (node 102) will communication with the other user 82 based on theweighted electronic communications data from each data source 97. Aweight 99 may be a quantity, coefficient, parameter, or other valueassociated with a data source 97, for example, to capture differences inimportance or rank among data sources 97 when generating graph 112.

Ranking connections at 208 may include obtaining, for one user 82 (node102) and connected other users 82 (neighbors 104), a probabilitydistribution 114, for example, via calculating probability at 206.Ranking connections at 208 may include aggregating probability values116 of distributions 114 (each associated with a data source 97) toobtain a score value for each connection 84, and thereby for each user82 (neighbor 104). Sorting connections 84 by score values ranksconnections 84 and therefore associated neighbors 104 in order by score.High scores may identify connections 84 (neighbors 104) with highrelative importance, and low scores may identify connections 84(neighbors 104) with low relative importance.

In an embodiment, ranking connections at 208 may employ a Kemeny-Youngrule to aggregate probability values 116 and evaluate a score value foreach connection 82. In an embodiment, ranking connections at 208 mayemploy a Borda Count rule to aggregate values 116 and evaluate scorevalues. In an embodiment, ranking connections at 208 may employ aweighted Borda Count rule to aggregate values and evaluate weightedscores.

In some embodiments, method 200 may further include creating a graphthat represents the one user, other users, and the one user'sconnections with other users at 210. Creating a graph at 210 may includecreating a neighbor graph 100 that represents the selected user 82 as agiven node 102, each connected other user 82 as a neighbor node 104, andeach connection 84 between the selected user 82 and a connected otheruser as a link 94. Creating a neighbor graph 100 may includeimplementing the neighbor graph 100 in computer program code.

In some embodiments, method 200 may further include removing from thegraph one or more of the one user's connections based on the ranked oneuser's connections at 212. In an embodiment, removing connections at 212may include applying a threshold function, for example, to remove orretain connections above or below a specified rank score, rank position,or other specified value. Rank score and/or position values may derivefrom aggregated ranking obtained by a method that may include aKemeny-Young or Borda Count ranking rule. In an embodiment, removingconnections at 212 may include removing connections 84 by randomsampling. In an embodiment, removing connections at 212 may includeremoving connections 84 by statistical sampling, for example, to removeconnections in proportion to rank score or rank position, so that theprobability of retaining a connection is proportional to its rank in anaggregated ranking obtained by a method that may include a Kemeny-Youngor Borda Count ranking rule. Removing connections at 212 may includespecifying one or more parameters that influence the number ofconnections removed or retained. Removing connections at 212 may includemeasuring or monitoring one or more error values, for example, toevaluate the effect of removing connections 84 and/or control the numberor percentage removed.

A computational model 110 that includes neighbor graph 100 may functionas, for example, a proxy of all or part of an actual SN 80, for example,to predict the behavior of a modeled SN 80 by testing a change,communication, or other stimulus with the SN model 110.

As should be appreciated, the preceding embodiment(s) is/are forillustrative purposes only. In embodiments, steps may be added orremoved, and many steps may be performed at least partly in parallel.Different portions of a digital file, or different related digital filesmay be processed at the same time or prioritized for speed or transferpurposes. Processes such as searching for multiple patterns withinarrays may be performed effectively or actually simultaneously. Forexample, some or all processes may be threaded, using a single processoror multiple processors.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a,” “an,” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements in the claims below are intended toinclude any structure, material, or act for performing the function incombination with other claimed elements as specifically claimed. Thedescription of the disclosure has been presented for purposes ofillustration and description, but is not intended to be exhaustive orlimited to the embodiments in the form disclosed. Many modifications andvariations will be apparent to those of ordinary skill in the artwithout departing from the scope and spirit of the embodiments of thedisclosure. The embodiments were chosen and described in order to bestexplain the principles of the disclosure and the practical application,and to enable others of ordinary skill in the art to understand thedisclosure for various embodiments with various modifications as aresuited to the particular use contemplated.

What is claimed is:
 1. A computer system, comprising: a processor; amemory; and a program comprising a plurality of instructions stored inthe memory that are executed by the processor to: identify one user'sconnections with other users in an electronic social network; create adata structure in the memory that represents the one user, the otherusers, and the one user's connections with the other users; analyze aplurality of data sources for electronic communications between the oneuser and the other users; assign a relative importance value to eachdata source of the plurality of data sources; assign a weight to eachconnection between the one user and the other users, the weight being anencoded value computed based on a link structure of the connections, thelink structure including metadata indicating a category and a status ofthe respective connections, the weight enabling an emulation andbehavioral prediction of the electronic social network in response to astimulus applied to the electronic social network; weight electroniccommunications data from each data source of the plurality of datasources based on the assigned relative importance value of each datasource; calculate for each of the other users the probability that theone user will communicate with that other user based on the analyzedplurality of data sources and the weight values; rank the one user'sconnections with the other users based on the calculated probabilities;remove from the data structure one or more data structure elements ofthe one user's connections based on the ranked one user's connections tocreate a signature graph; and form a diagnostic model of the electronicsocial network, the diagnostic model including the signature graph toaccelerate a processing speed of the diagnostic model on a socialnetwork analysis system.
 2. The computer system of claim 1, wherein theplurality of instructions further comprises instructions that areexecuted by the processor to calculate for each of the other users theprobability that the one user will communicate with that other userbased on the weighted electronic communications data from each datasource.
 3. The computer system of claim 1, wherein the plurality ofinstructions further comprises instructions that are executed by theprocessor to remove from the graph one or more of the one user'sconnections that are ranked lower than a predetermined thresholdranking.
 4. The computer system of claim 1, wherein the plurality ofinstructions further comprises instructions that are executed by theprocessor to apply a ranking rule to the signature graph.
 5. Thecomputer system of claim 4, wherein the plurality of instructionsfurther comprises instructions that are executed by the processor togenerate a rank matrix based on the application of the ranking rule. 6.A computer program product for ranking one user's connections in anelectronic social network, the computer program product comprising: atleast one non-transitory computer readable medium having computerreadable program instructions embodied therewith, the computer readableprogram instructions, when read by a processor, being configured to:identify one user's connections with other users in an electronic socialnetwork; create a data structure in the memory that represents the oneuser, the other users, and the one user's connections with the otherusers; analyze a plurality of data sources for electronic communicationsbetween the one user and the other users; assign a relative importancevalue to each data source of the plurality of data sources; assign aweight to each connection between the one user and the other users, theweight being an encoded value computed based on a link structure of theconnections, the link structure including metadata indicating a categoryand a status of the respective connections, the weight enabling anemulation and behavioral prediction of the electronic social network inresponse to a stimulus applied to the electronic social network; weightelectronic communications data from each data source of the plurality ofdata sources based on the assigned relative importance value of eachdata source; calculate for each of the other users the probability thatthe one user will communicate with that other user based on the analyzedplurality of data sources and the weight values; rank the one user'sconnections with the other users based on the calculated probabilities;remove from the data structure one or more data structure elements ofthe one user's connections based on the ranked one user's connections tocreate a signature graph; and form a diagnostic model of the electronicsocial network, the diagnostic model including the signature graph toaccelerate a processing speed of the diagnostic model on a socialnetwork analysis system.
 7. The computer program product of claim 6,wherein the instructions further comprises instructions configured tocalculate for each of the other users the probability that the one userwill communicate with that other user based on the weighted electroniccommunications data from each data source.
 8. The computer programproduct of claim 6, wherein the instructions further comprisesinstructions configured to remove from the graph one or more of the oneuser's connections that are ranked lower than a predetermined thresholdranking.
 9. The computer program product of claim 6, wherein theinstructions further comprises instructions configured to apply aranking rule to the signature graph.
 10. The computer program product ofclaim 9, wherein the instructions further comprises instructionsconfigured to generate a rank matrix based on the application of theranking rule.